{
  "title":"CSS position:sticky",
  "description":"Keeps elements positioned as \"fixed\" or \"relative\" depending on how it appears in the viewport. As a result the element is \"stuck\" when necessary while scrolling.",
  "spec":"https://drafts.csswg.org/css-position/#sticky-pos",
  "status":"wd",
  "links":[
    {
      "url":"https://developers.google.com/web/updates/2012/08/Stick-your-landings-position-sticky-lands-in-WebKit",
      "title":"HTML5Rocks"
    },
    {
      "url":"https://developer.mozilla.org/en-US/docs/Web/CSS/position",
      "title":"MDN Web Docs - CSS position"
    },
    {
      "url":"https://www.webplatform.org/docs/css/properties/position",
      "title":"WebPlatform Docs"
    },
    {
      "url":"https://github.com/dollarshaveclub/stickybits",
      "title":"Polyfill"
    },
    {
      "url":"https://github.com/wilddeer/stickyfill",
      "title":"Another polyfill"
    },
    {
      "url":"https://mastery.games/post/position-sticky/",
      "title":"geddski article: Examples and Gotchas"
    }
  ],
  "bugs":[
    {
      "description":"Firefox 58 & below, Chrome 63 & below and Safari 7 & below do not appear to support [sticky table headers](https://jsfiddle.net/Mf4YT/2/)."
    },
    {
      "description":"A parent with overflow set to `auto` will prevent `position: sticky` from working in Safari"
    }
  ],
  "categories":[
    "CSS"
  ],
  "stats":{
    "ie":{
      "5.5":"n",
      "6":"n",
      "7":"n",
      "8":"n",
      "9":"n",
      "10":"n",
      "11":"n"
    },
    "edge":{
      "12":"n",
      "13":"n",
      "14":"n",
      "15":"n",
      "16":"a #6",
      "17":"a #6",
      "18":"a #6",
      "79":"a #4",
      "80":"a #4",
      "81":"a #4",
      "83":"a #4",
      "84":"a #4",
      "85":"a #4",
      "86":"a #4",
      "87":"a #4",
      "88":"a #4",
      "89":"a #4",
      "90":"a #4",
      "91":"y",
      "92":"y",
      "93":"y",
      "94":"y",
      "95":"y",
      "96":"y"
    },
    "firefox":{
      "2":"n",
      "3":"n",
      "3.5":"n",
      "3.6":"n",
      "4":"n",
      "5":"n",
      "6":"n",
      "7":"n",
      "8":"n",
      "9":"n",
      "10":"n",
      "11":"n",
      "12":"n",
      "13":"n",
      "14":"n",
      "15":"n",
      "16":"n",
      "17":"n",
      "18":"n",
      "19":"n",
      "20":"n",
      "21":"n",
      "22":"n",
      "23":"n",
      "24":"n",
      "25":"n",
      "26":"n d #1",
      "27":"n d #1",
      "28":"n d #1",
      "29":"n d #1",
      "30":"n d #1",
      "31":"n d #1",
      "32":"a #3",
      "33":"a #3",
      "34":"a #3",
      "35":"a #3",
      "36":"a #3",
      "37":"a #3",
      "38":"a #3",
      "39":"a #3",
      "40":"a #3",
      "41":"a #3",
      "42":"a #3",
      "43":"a #3",
      "44":"a #3",
      "45":"a #3",
      "46":"a #3",
      "47":"a #3",
      "48":"a #3",
      "49":"a #3",
      "50":"a #3",
      "51":"a #3",
      "52":"a #3",
      "53":"a #3",
      "54":"a #3",
      "55":"a #3",
      "56":"a #3",
      "57":"a #3",
      "58":"a #3",
      "59":"y",
      "60":"y",
      "61":"y",
      "62":"y",
      "63":"y",
      "64":"y",
      "65":"y",
      "66":"y",
      "67":"y",
      "68":"y",
      "69":"y",
      "70":"y",
      "71":"y",
      "72":"y",
      "73":"y",
      "74":"y",
      "75":"y",
      "76":"y",
      "77":"y",
      "78":"y",
      "79":"y",
      "80":"y",
      "81":"y",
      "82":"y",
      "83":"y",
      "84":"y",
      "85":"y",
      "86":"y",
      "87":"y",
      "88":"y",
      "89":"y",
      "90":"y",
      "91":"y",
      "92":"y",
      "93":"y",
      "94":"y",
      "95":"y",
      "96":"y",
      "97":"y"
    },
    "chrome":{
      "4":"n",
      "5":"n",
      "6":"n",
      "7":"n",
      "8":"n",
      "9":"n",
      "10":"n",
      "11":"n",
      "12":"n",
      "13":"n",
      "14":"n",
      "15":"n",
      "16":"n",
      "17":"n",
      "18":"n",
      "19":"n",
      "20":"n",
      "21":"n",
      "22":"n",
      "23":"n d #2",
      "24":"n d #2",
      "25":"n d #2",
      "26":"n d #2",
      "27":"n d #2",
      "28":"n d #2",
      "29":"n d #2",
      "30":"n d #2",
      "31":"n d #2",
      "32":"n d #2",
      "33":"n d #2",
      "34":"n d #2",
      "35":"n d #2",
      "36":"n d #2",
      "37":"n",
      "38":"n",
      "39":"n",
      "40":"n",
      "41":"n",
      "42":"n",
      "43":"n",
      "44":"n",
      "45":"n",
      "46":"n",
      "47":"n",
      "48":"n",
      "49":"n",
      "50":"n",
      "51":"n",
      "52":"n d #2",
      "53":"n d #2",
      "54":"n d #2",
      "55":"n d #2",
      "56":"a #4",
      "57":"a #4",
      "58":"a #4",
      "59":"a #4",
      "60":"a #4",
      "61":"a #4",
      "62":"a #4",
      "63":"a #4",
      "64":"a #4",
      "65":"a #4",
      "66":"a #4",
      "67":"a #4",
      "68":"a #4",
      "69":"a #4",
      "70":"a #4",
      "71":"a #4",
      "72":"a #4",
      "73":"a #4",
      "74":"a #4",
      "75":"a #4",
      "76":"a #4",
      "77":"a #4",
      "78":"a #4",
      "79":"a #4",
      "80":"a #4",
      "81":"a #4",
      "83":"a #4",
      "84":"a #4",
      "85":"a #4",
      "86":"a #4",
      "87":"a #4",
      "88":"a #4",
      "89":"a #4",
      "90":"a #4",
      "91":"y",
      "92":"y",
      "93":"y",
      "94":"y",
      "95":"y",
      "96":"y",
      "97":"y",
      "98":"y",
      "99":"y"
    },
    "safari":{
      "3.1":"n",
      "3.2":"n",
      "4":"n",
      "5":"n",
      "5.1":"n",
      "6":"n",
      "6.1":"a x #5",
      "7":"a x #5",
      "7.1":"y x",
      "8":"y x",
      "9":"y x",
      "9.1":"y x",
      "10":"y x",
      "10.1":"y x",
      "11":"y x",
      "11.1":"y x",
      "12":"y x",
      "12.1":"y x",
      "13":"y",
      "13.1":"y",
      "14":"y",
      "14.1":"y",
      "15":"y",
      "15.1":"y",
      "TP":"y"
    },
    "opera":{
      "9":"n",
      "9.5-9.6":"n",
      "10.0-10.1":"n",
      "10.5":"n",
      "10.6":"n",
      "11":"n",
      "11.1":"n",
      "11.5":"n",
      "11.6":"n",
      "12":"n",
      "12.1":"n",
      "15":"n",
      "16":"n",
      "17":"n",
      "18":"n",
      "19":"n",
      "20":"n",
      "21":"n",
      "22":"n",
      "23":"n",
      "24":"n",
      "25":"n",
      "26":"n",
      "27":"n",
      "28":"n",
      "29":"n",
      "30":"n",
      "31":"n",
      "32":"n",
      "33":"n",
      "34":"n",
      "35":"n",
      "36":"n",
      "37":"n",
      "38":"n",
      "39":"n d #2",
      "40":"n d #2",
      "41":"n d #2",
      "42":"a #4",
      "43":"a #4",
      "44":"a #4",
      "45":"a #4",
      "46":"a #4",
      "47":"a #4",
      "48":"a #4",
      "49":"a #4",
      "50":"a #4",
      "51":"a #4",
      "52":"a #4",
      "53":"a #4",
      "54":"a #4",
      "55":"a #4",
      "56":"a #4",
      "57":"a #4",
      "58":"a #4",
      "60":"a #4",
      "62":"a #4",
      "63":"a #4",
      "64":"a #4",
      "65":"a #4",
      "66":"a #4",
      "67":"a #4",
      "68":"a #4",
      "69":"a #4",
      "70":"a #4",
      "71":"a #4",
      "72":"a #4",
      "73":"a #4",
      "74":"a #4",
      "75":"a #4",
      "76":"a #4",
      "77":"a #4",
      "78":"a #4",
      "79":"a #4",
      "80":"a #4",
      "81":"a #4",
      "82":"a #4"
    },
    "ios_saf":{
      "3.2":"n",
      "4.0-4.1":"n",
      "4.2-4.3":"n",
      "5.0-5.1":"n",
      "6.0-6.1":"a x #5",
      "7.0-7.1":"a x #5",
      "8":"y x",
      "8.1-8.4":"y x",
      "9.0-9.2":"y x",
      "9.3":"y x",
      "10.0-10.2":"y x",
      "10.3":"y x",
      "11.0-11.2":"y x",
      "11.3-11.4":"y x",
      "12.0-12.1":"y x",
      "12.2-12.5":"y x",
      "13.0-13.1":"y",
      "13.2":"y",
      "13.3":"y",
      "13.4-13.7":"y",
      "14.0-14.4":"y",
      "14.5-14.8":"y",
      "15.0-15.1":"y"
    },
    "op_mini":{
      "all":"n"
    },
    "android":{
      "2.1":"n",
      "2.2":"n",
      "2.3":"n",
      "3":"n",
      "4":"n",
      "4.1":"n",
      "4.2-4.3":"n",
      "4.4":"n",
      "4.4.3-4.4.4":"n",
      "96":"y"
    },
    "bb":{
      "7":"n",
      "10":"n"
    },
    "op_mob":{
      "10":"n",
      "11":"n",
      "11.1":"n",
      "11.5":"n",
      "12":"n",
      "12.1":"n",
      "64":"y"
    },
    "and_chr":{
      "96":"y"
    },
    "and_ff":{
      "94":"y"
    },
    "ie_mob":{
      "10":"n",
      "11":"n"
    },
    "and_uc":{
      "12.12":"a #4"
    },
    "samsung":{
      "4":"n",
      "5.0-5.4":"n",
      "6.2-6.4":"y",
      "7.2-7.4":"y",
      "8.2":"y",
      "9.2":"y",
      "10.1":"y",
      "11.1-11.2":"y",
      "12.0":"y",
      "13.0":"y",
      "14.0":"y",
      "15.0":"y"
    },
    "and_qq":{
      "10.4":"a #4"
    },
    "baidu":{
      "7.12":"n"
    },
    "kaios":{
      "2.5":"a #3"
    }
  },
  "notes":"Any ancestor between the sticky element and its user-scrollable container with overflow computed as anything but `visible`/`clip` will effectively prevent sticking behavior.",
  "notes_by_num":{
    "1":"Can be enabled in Firefox by setting the about:config preference layout.css.sticky.enabled to true",
    "2":"Enabled through the \"experimental Web Platform features\" flag",
    "3":"Not supported on any `table` parts - See [Firefox bug](https://bugzilla.mozilla.org/show_bug.cgi?id=975644)",
    "4":"Supported on `th` elements, but not `thead` or `tr` - See [Chrome bug](https://bugs.chromium.org/p/chromium/issues/detail?id=702927)",
    "5":"Do not appear to support sticky table headers",
    "6":"Supported on `th` elements, but not `thead` or `tr` - See [Edge bug](https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/16765952/)"
  },
  "usage_perc_y":91.31,
  "usage_perc_a":4.94,
  "ucprefix":false,
  "parent":"",
  "keywords":"",
  "ie_id":"positionsticky",
  "chrome_id":"6190250464378880",
  "firefox_id":"",
  "webkit_id":"feature-position:-sticky",
  "shown":true
}
